07. 解决方案:变量作用域
练习解决方案:变量作用域
更好的编写方式为:
egg_count = 0
def buy_eggs(count):
return count + 12 # purchase a dozen eggs
egg_count = buy_eggs(egg_count)
将这段代码与原始代码段进行比较:
egg_count = 0
def buy_eggs():
egg_count += 12 # purchase a dozen eggs
buy_eggs()
下面的代码段导致 UnboundLocalError
。
在上个视频中,你发现在函数内,我们可以成功地输出外部变量的值。因为我们只是访问该变量的值。当我们尝试将此变量的值更改或重新赋值为另一个值时,我们将遇到错误。Python 不允许函数修改不在函数作用域内的变量。
但是上面的原则仅适用于整数和字符串,列表、字典、集合、类中可以在子程序(子函数)中通过修改局部变量达到修改全局变量的目的。